package com.storage.system.mapper;

import com.storage.system.domain.StorageProperties;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 属性 数据层
 *
 * @author storage
 * @date 2019-08-18
 */
public interface StoragePropertiesMapper {
    /**
     * 查询属性信息
     *
     * @param id 属性ID
     * @return 属性信息
     */
    public StorageProperties selectStoragePropertiesById(Long id);

    /**
     * 查询属性列表
     *
     * @param storageProperties 属性信息
     * @return 属性集合
     */
    public List<StorageProperties> selectStoragePropertiesList(StorageProperties storageProperties);

    /**
     * 新增属性
     *
     * @param storageProperties 属性信息
     * @return 结果
     */
    public int insertStorageProperties(StorageProperties storageProperties);

    /**
     * 修改属性
     *
     * @param storageProperties 属性信息
     * @return 结果
     */
    public int updateStorageProperties(StorageProperties storageProperties);

    /**
     * 删除属性
     *
     * @param id 属性ID
     * @return 结果
     */
    public int deleteStoragePropertiesById(Long id);

    /**
     * 批量删除属性
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteStoragePropertiesByIds(String[] ids);

    /**
     * 查询属性列表
     *
     * @param categoryId
     * @param createUserId
     * @param ownerType
     * @return
     */
    List<StorageProperties> selectStoragePropertiesByCategoryId(@Param("categoryId") Long categoryId, @Param("createUserId") Long createUserId, @Param("ownerType") Integer ownerType);

    /**
     * 查询分页数据
     *
     * @param properties
     * @param start
     * @param pageSize
     * @return
     */
    List<StorageProperties> queryPageList(@Param("properties") StorageProperties properties, @Param("start") Integer start, @Param("pageSize") Integer pageSize);

    /**
     * 查询分页count
     *
     * @param properties
     * @return
     */
    Long queryPageCount(StorageProperties properties);
}